home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / share / onboard / KbdWindow.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2007-04-29  |  3.5 KB  |  107 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import gtk
  5. import gobject
  6.  
  7. class KbdWindow(gtk.Window):
  8.     '''Very messy class holds the keyboard widget.  The mess is the docked window support which is disable because of numerous metacity bugs.'''
  9.     
  10.     def __init__(self, sok):
  11.         gtk.Window.__init__(self)
  12.         self.keyboard = None
  13.         self.sok = sok
  14.         self.connect('destroy', gtk.main_quit)
  15.         self.connect('size-request', self.cb_size_changed)
  16.         self.set_accept_focus(False)
  17.         self.grab_remove()
  18.         self.set_keep_above(True)
  19.         x = self.sok.gconfClient.get_int('/apps/sok/sizeX')
  20.         y = self.sok.gconfClient.get_int('/apps/sok/sizeY')
  21.         if x and y:
  22.             self.set_default_size(x, y)
  23.         else:
  24.             self.set_default_size(800, 400)
  25.  
  26.     
  27.     def set_keyboard(self, keyboard):
  28.         if self.keyboard:
  29.             self.remove(self.keyboard)
  30.         
  31.         self.keyboard = keyboard
  32.         self.add(self.keyboard)
  33.         self.keyboard.show()
  34.         self.queue_draw()
  35.  
  36.     
  37.     def do_set_layout(self, client, cxion_id, entry, user_data):
  38.         pass
  39.  
  40.     
  41.     def do_set_size(self, client, cxion_id, entry, user_data):
  42.         self.set_default_size(self.sok.gconfClient.get_int('/apps/sok/sizeX'), self.sok.gconfClient.get_int('/apps/sok/sizeY'))
  43.  
  44.     
  45.     def cb_size_changed(self, widget, event):
  46.         size = self.get_allocation()
  47.         if size.width > 1 and size.height > 1:
  48.             self.sok.gconfClient.set_int('/apps/sok/sizeX', size.width)
  49.             self.sok.gconfClient.set_int('/apps/sok/sizeY', size.height)
  50.         
  51.  
  52.     
  53.     def do_set_gravity(self, edgeGravity):
  54.         self.edgeGravity = edgeGravity
  55.         (width, height) = self.get_size()
  56.         geom = self.get_screen().get_monitor_geometry(0)
  57.         eg = self.edgeGravity
  58.         x = 0
  59.         y = 0
  60.         if eg == gtk.gdk.GRAVITY_SOUTH:
  61.             y = geom.height - height
  62.         
  63.         y += 29
  64.         self.move(x, y)
  65.         gobject.idle_add(self.do_set_strut)
  66.  
  67.     
  68.     def do_set_strut(self):
  69.         propvals = [
  70.             0,
  71.             0,
  72.             0,
  73.             0,
  74.             0,
  75.             0,
  76.             0,
  77.             0,
  78.             0,
  79.             0,
  80.             0,
  81.             0]
  82.         screen = self.get_screen()
  83.         biggestHeight = 0
  84.         for n in range(screen.get_n_monitors()):
  85.             tempHeight = screen.get_monitor_geometry(n).height
  86.             if biggestHeight < tempHeight:
  87.                 biggestHeight = tempHeight
  88.                 continue
  89.         
  90.         geom = self.get_screen().get_monitor_geometry(0)
  91.         eg = self.edgeGravity
  92.         (x, y) = self.window.get_origin()
  93.         (width, height) = self.get_size()
  94.         if eg == gtk.gdk.GRAVITY_NORTH:
  95.             propvals[2] = height + y
  96.             propvals[9] = width
  97.         elif eg == gtk.gdk.GRAVITY_SOUTH and y != 0:
  98.             print geom.height
  99.             propvals[3] = biggestHeight - y
  100.             propvals[11] = width - 1
  101.         
  102.         print propvals
  103.         self.window.property_change('_NET_WM_STRUT_PARTIAL', 'CARDINAL', 32, gtk.gdk.PROP_MODE_REPLACE, propvals)
  104.         self.queue_resize_no_redraw()
  105.  
  106.  
  107.